1. Field of the Invention
The present invention relates to the field of data processing. More specifically, the present invention relates to the distribution and updating of software.
2. Background Information
With advances in microprocessor, networking and telecommunication technologies, increasingly computing devices are networked together through private and public networks, such as the Internet. As a result, for improved operational efficiency, increasingly software vendors prefer to distribute software products, including updates, online.
Typically, a client computer would periodically check in with a central server of a software vendor, when the client computer is connected online, and exchange information with the server, to allow the server to determine if the client computer's installed software supplied by the software vendor needs to be updated. If it is determined that update is necessary, the user of the client computer will be so informed, and asked whether the user would like to have the software updated. If the user agrees to the update, the updates would be downloaded immediately, and the software in turn would be updated immediately thereafter. During the download and re-installation, the client computer would be occupied and unavailable for normal usage by the user. If the user does not want to have the software updated at the time, the updates would not be downloaded, and as a result, the software would not be updated. The user will be prompted again next time when client computer is connected online again.
These prior art techniques suffer from a number of disadvantages. As described earlier, the download is performed immediately when the user agrees to the update, and the user's computer is tied up during the download and re-installation, just when the user wants to do some productive work, which is often the reason why the user goes online. As a result, many users would decline to accept the update offer. Thus, under the prior art techniques, there are often more down level versions of the software being deployed than otherwise necessary. Moreover, overtimes, the repeated prompting of the user to update the software can becoming annoying to the user. Further, the prior art techniques are not scalable to support a very large number of users, as the server capacity necessary to provide immediate download to hundreds of thousands of consenting users in a responsive manner is prohibitively costly.
Thus, an improved approach to software distribution/update is desired.